package com.cssw.fyzb.busi.service.live;

import com.cssw.fyzb.core.model.vo.live.AnchorVo;
import com.cssw.fyzb.core.model.vo.live.OperLiveVo;
import com.cssw.fyzb.core.model.dodb.*;
import com.ydn.dbframe.plugin.activerecord.Page;

import java.text.ParseException;
import java.util.List;

/**
 * @author wangj
 */
public interface AnchorService {

    /**
     * 通过主播id获取主播信息
     *
     * @return
     */
    CmfAnchor queryAnchorById(Long anchorId);

    /**
     * 通过用户id获取主播信息
     *
     * @return
     */
    AnchorVo queryAnchorByUserId(Long userId);

    /**
     * 查询用户是否在黑名单
     *
     * @param anchorId
     * @param userId
     * @return
     */
    public CmfAnchorBlacklist queryAnchorBlacklist(Long anchorId, Long userId);

    /**
     * 加入黑名单
     *
     * @param anchorId
     * @param userId
     * @return
     */
    public Long addAnchorBlacklist(Long anchorId, Long userId);

    /**
     * 踢出黑名单
     *
     * @param id
     * @return
     */
    public void removeAnchorBlacklistById(Long id);

    /**
     * 获取黑名单
     *
     * @return
     */
    public Page<CmfAnchorBlacklist> listAnchorBlacklist(Long anchorId, Integer pageNumber, Integer pageSize);


    /**
     * 查询管理员
     *
     * @param anchorId
     * @param userId
     * @return
     */
    public CmfAnchorManage queryAnchorManage(Long anchorId, Long userId);

    /**
     * 增加管理员
     *
     * @param anchorId
     * @param userId
     * @return
     */
    public Long addAnchorManage(Long anchorId, Long userId);

    /**
     * 删除管理员
     *
     * @param id
     * @return
     */
    public void removeAnchorManageById(Long id);

    /**
     * 获取管理员列表
     *
     * @return
     */
    public Page<CmfAnchorManage> listAnchorManage(Long anchorId, Integer pageNumber, Integer pageSize);

    /**
     * 查询敏感词
     *
     * @param anchorId
     * @param keyWord
     * @return
     */
    public CmfAnchorSensitive queryAnchorSensitive(Long anchorId, String keyWord);

    /**
     * 添加敏感词
     *
     * @param anchorId
     * @param keyWord
     * @return
     */
    public Long addAnchorSensitive(Long anchorId, String keyWord);

    /**
     * 删除敏感词
     *
     * @param id
     * @return
     */
    public void removeAnchorSensitiveById(Long id);

    /**
     * 敏感词列表
     *
     * @return
     */
    public Page<CmfAnchorSensitive> listAnchorSensitive(Long anchorId, Integer pageNumber, Integer pageSize);

    /**
     * 开通直播
     *
     * @return java.lang.Long
     * @Param [userId]
     **/
    Long saveAnchor(Long userId) throws ParseException;

    /**
     * 开通VIP直播
     *
     * @return java.lang.Long
     * @Param [userId]
     **/
    Long saveVipAnchor(Long userId, String tradePwd);

    List<OperLiveVo> liveVerification(Long userId) throws ParseException;

    void updateTitle(Long anchorId, String title);

    void updateThumb(Long anchorId, String thumb);

    /**
     * 点赞
     * @Param
     * @return
     **/
    void liveLikes(String userId, String liveId);
}
